package transport.generator;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class ModelGeneracjiBuilder {

    private ModelGeneracji wynik = new ModelGeneracji(false);

    public ModelGeneracji wczytajModel(String sciezka) throws FileNotFoundException, IOException {
        File plik = new File(sciezka);

        BufferedReader czytacz = new BufferedReader(new FileReader(plik));

        int ileTransportow = parseLine(czytacz.readLine(), ":");
        int ileDni = parseLine(czytacz.readLine(), ":");
        int maxWagony = parseLine(czytacz.readLine(), ":");
        int minWagony = parseLine(czytacz.readLine(), ":");
        int miejscNaWagonie = parseLine(czytacz.readLine(), ":");

        wynik.setIleTransportow(ileTransportow);
        wynik.setIleDni(ileDni);
        wynik.setMaxWagony(maxWagony);
        wynik.setMiejscNaWagonie(miejscNaWagonie);
        wynik.setMinWagony(minWagony);

        czytacz.readLine();
        czytacz.readLine();
        wczytajPorty(czytacz);

        return wynik;
    }

    private int parseLine(String line, String separator) {
        String[] splitted = line.split(separator);
        String result = splitted[1].trim();

        return Integer.parseInt(result);
    }

    private void wczytajPorty(BufferedReader czytacz) throws IOException {
        String line;
        while (true) {
            line = czytacz.readLine();
            if (line == null || line.trim().isEmpty()) {
                break;
            }

            wynik.addPort(line);
        }
    }
}
